1. Field of the Invention
This invention relates generally to broadband communications systems, and more particularly to a method of routing data between broadband system product communication ports.
2. Description of the Prior Art
Operating system (OS) software, such as the Windows OS software, creates a separate software instantiation (or abstraction) of a complete system, or Virtual Machine (VM), for each application running concurrently. Each application uses and changes the state of its own virtual machine (virtual peripherals, virtual memory, etc.) independently of other tasks. Abstraction provides the OS with device independence, and device emulation delivers hardware independence.
In one known telephony system, a hardware abstraction layer (HAL) exchanges telephone signals with the external telephony devices, and interfaces directly with the underlying DSP hardware. The HAL includes basic hardware interface routines, including DSP initialization, target hardware control, codec sampling, and hardware control interface routines.
More specifically, a hardware abstraction layer interfaces with the hardware, protects applications from directly accessing the hardware and provides for improved operating system stability. A traditional hardware abstraction layer wraps an application program interface around a second task (e.g., port register settings and the like). An operating system designer need only instruct the application program interface to send some data and the application program interface then takes care of setting the correct registers, ensuring any data is in the proper place for the hardware, and the like. What the application program interface does not do is take care of any differences between different operating systems. This typically means either special coding is required for each operating system or addressing another layer that performs translation between the hardware abstraction layer and the specific operating system.
Broadband communication systems products are required to route data vary quickly between communications ports. The current technique, shown in FIG. 1, of routing this data is not meeting the higher-rate performance requirements of today's products. The communication processor hardware abstraction layer (Network Protocol Logic 10; the algorithms that decide how a data packet is to be bridged or routed) can be seen to reside in close association with the OS.
Current solutions use the data elements inherent in the operating system (OS) to process the information contained in the communication packets. This involves passing the communication data packet through several layers of software and in some cases, copying the data and then sending it to the required destination.
Accordingly, it would be advantageous if a technique could be provided for improving the rate at which data packets can be moved through a communication system. It would further be beneficial if the technique could reduce the load on the OS and its associated CPU(s) such that user-specific application could be added to the system without adversely impacting system performance.